跳到主要内容

NC15 求二叉树的层序遍历

https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

import (
"container/list"
)

// type TreeNode struct {
// Val int
// Left *TreeNode
// Right *TreeNode
// }

/**
*
* @param root TreeNode类
* @return int整型二维数组
*/
func levelOrder(root *TreeNode) [][]int {
if root == nil {
return nil
}
var result [][]int
queue := list.New()
queue.PushBack(root)

for queue.Len() != 0 {
size := queue.Len()
var temp []int
for i := 0; i < size; i++ {
ele := queue.Front().Value.(*TreeNode)
queue.Remove(queue.Front())
temp = append(temp, ele.Val)

if ele.Left != nil {
queue.PushBack(ele.Left)
}

if ele.Right != nil {
queue.PushBack(ele.Right)
}
}

result = append(result, temp)
}

return result
}